\chapter{Cài đặt trình biên dịch}

\section{Lựa chọn hệ thống biên dịch và quản lý mã nguồn}
Hiện nay có rất nhiều trình biên dịch C/C++ như: 
\begin{itemize}
\item \emph{gcc}: 
\item \emph{cl.exe}:
\end{itemize}

Để sử dụng các trình biên dịch này, người ta thường sử dụng 
các phần mềm cung cấp môi trường phát triển tích hợp 
(\emph{Integrated Development Environment} - IDE) trên
ngôn ngữ C/C++. Điển hình là:
\begin{itemize}
\item \emph{Eclipse}: 
\item \emph{Visual Studio}:
\item \emph{QTCreator}:
\end{itemize}

Các IDE thường cung cấp tính năng \emph{quản lý dự án} (project management)
để quản lý các file \emph{mã nguồn} (source code) và \emph{tài nguyên} (resource).
Tuy nhiên, để dự án được quản lý thống nhất và linh hoạt, ta có thể sử dụng 
các phần mềm quản lý mã nguồn riêng như:
\begin{itemize}
\item \emph{Subversion}: 
\item \emph{CMake}:
\end{itemize}
Các phần mềm này cho phép quản lý, biên dịch mã nguồn trên nhiều kiến trúc, 
hệ điều hành và trình biên dịch khác nhau một cách dễ dàng.

Trong giáo trình này, người viết giáo trình lựa chọn sử dụng trình biên dịch
\emph{gcc}, môi trường phát triển tích hợp \emph{QTCreator}, hệ thống quản lý
mã nguồn \emph{Subversion}, hệ thống quản lý dự án \emph{CMake} để làm các ví 
dụ. Các lựa chọn trên cho phép biên dịch phần mềm viết bằng C/C++ trên cả Windows
và Linux. Người đọc có thể xem phần phụ lục cách
biên dịch các dự án quản lý bằng \emph{CMake} trên Visual Studio.
